package com.guodi.map.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.guodi.map.entity.MapMaterialFile;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @描述：
 * @作者: 戴伙进
 * @日期: 2020/6/3 10:22
 */
public interface MapMaterialFileMapper extends BaseMapper<MapMaterialFile> {

    /**
     * @描述:根据编码删除记录
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/3 11:18
     **/
    void deleteByParentId(@Param("id") String id);

    /**
     * @描述:递归删除树节点下的数据
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/3 20:25
    **/
    void deleteByIds(@Param("id") String id);

    /**
     * @描述:通过父节点递归获取所有的节点数据
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/4 15:12
    **/
    List<MapMaterialFile> getAllByParentId(@Param("parentId") String parentId, @Param("keyWord") String keyWord, @Param("type") Integer type);

    /**
     * @描述:查询最大的排序数字
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/3 20:08
     **/
    Integer selectMaxSort();

    /**
     * @描述:根据节点id向上递归获取所有父节点信息
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/8 16:04
    **/
    List<MapMaterialFile> getAllParentById(@Param("ids") List<String> ids);


    /**
     * @描述:根据节点获取所有的子节点数据
     * @入参:
     * @出参:
     * @作者: 戴伙进
     * @日期: 2020/6/8 16:04
     **/
    List<MapMaterialFile> getAllChildrenById(@Param("id") String id, @Param("type") Integer type);
}
